
package controller;

import java.util.ArrayList;
import java.util.Iterator;
import model.ITipoPagto;
import view.TipoPagtoGUI;

public class TipoPagtoCtrl implements ITipoPagtoCtrl{
    
    ITipoPagto model;
    TipoPagtoGUI tipoPagtoGUI;

    public TipoPagtoCtrl(ITipoPagto model) {  
        this.model = model;             
        tipoPagtoGUI = new TipoPagtoGUI(model, this); 
        tipoPagtoGUI.criarTela();
    }
    
    @Override
    public int getCodigo() {
        return model.getCodigo();
    }
    
    @Override
    public void inserir(int codigo,String descricao){        
        model.setProximoCodigo();
        model.setDescricao(descricao);        
        model.inserir();                   
    }
    
    @Override
    public void atualizar(int codigo,String descricao){
        model.setCodigo(codigo);
        model.setDescricao(descricao);             
        model.atualizar();        
    }
            
    @Override
    public void excluir(int codigo){
        model.setCodigo(codigo);
        model.excluir();
    }
    
    @Override
    public ArrayList pesquisar(int iOpcao, String iPesquisa) {        
        ArrayList<ITipoPagto> tipoPagtos = model.pesquisar(iOpcao, iPesquisa);
        ArrayList lstTemp = new ArrayList();
        ITipoPagto tipoPagtoTemp;
        Iterator i = tipoPagtos.iterator();
        while (i.hasNext()) {            
            tipoPagtoTemp = (ITipoPagto) i.next();
            lstTemp.add(new String[]{String.valueOf(tipoPagtoTemp.getCodigo()), tipoPagtoTemp.getDescricao()});            
        }
        return lstTemp;        
    }

    @Override
    public ArrayList getAll() {  
        ArrayList<ITipoPagto> tipoPagtos = model.getAll();
        ArrayList lstTemp = new ArrayList();
        ITipoPagto  tipoPagtoTemp;
        Iterator i = tipoPagtos.iterator();
        while (i.hasNext()) {            
            tipoPagtoTemp = (ITipoPagto) i.next();
            lstTemp.add(new String[]{String.valueOf(tipoPagtoTemp.getCodigo()), tipoPagtoTemp.getDescricao()});            
        }
        return lstTemp;   
    }
        
}
